package com.hsu.hsurpc.server.tcp;

import com.hsu.hsurpc.model.RpcRequest;
import com.hsu.hsurpc.model.RpcResponse;
import com.hsu.hsurpc.protocal.ProtocolMessage;
import com.hsu.hsurpc.protocal.ProtocolMessageDecoder;
import com.hsu.hsurpc.protocal.ProtocolMessageEncoder;
import com.hsu.hsurpc.protocal.ProtocolMessageTypeEnum;
import com.hsu.hsurpc.registry.LocalRegistry;
import io.vertx.core.Handler;
import io.vertx.core.buffer.Buffer;
import io.vertx.core.net.NetSocket;

import java.io.IOException;
import java.lang.reflect.Method;

/**
 * TCP 服务器处理器，用于处理来自客户端的请求并返回响应
 * @Author Hsu琛君珩
 * @Date 2024-09-23 11:26
 * @Description
 * @Version: v1.0.0
 */
public class TcpServerHandler implements Handler<NetSocket> {

    /**
     * 处理客户端连接的入口方法
     *
     * @param socket 代表与客户端的连接
     */
    @Override
    public void handle(NetSocket socket) {
        // 使用 TcpBufferHandlerWrapper 包装原有的处理逻辑
        TcpBufferHandlerWrapper bufferHandlerWrapper = new TcpBufferHandlerWrapper(buffer -> {
            // 在此处处理完整的请求数据
            System.out.println("Received complete message: " + buffer.toString());
            // 可以在这里处理请求，例如解码、业务逻辑等
        });
        // 设置包装后的处理器为 socket 的 handler
        socket.handler(bufferHandlerWrapper);
    }
}
